home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Plus 1997 #3
/
Amiga Plus CD - 1997 - No. 03.iso
/
pd
/
demo-versionen
/
maxoncpp4-demo
/
demo
/
supercode
/
prefs.c
< prev
next >
Wrap
C/C++ Source or Header
|
1996-12-31
|
19KB
|
842 lines
//-------------------------------------
//
// SuperCode (c) 1996 by T.Kühn
//
// Programmiersprache: ANSI-C
// Projektstart: 27.12.94
//
// Modul: Preferences
//
//-------------------------------------
//-------------------------------------
#include <pragma/asl_lib.h>
#include <pragma/graphics_lib.h>
#include <pragma/intuition_lib.h>
#include <pragma/dos_lib.h>
#include <pragma/exec_lib.h>
#include <pragma/gadtools_lib.h>
#include <libraries/gadtools.h>
#include <libraries/asl.h>
#include <intuition/gadgetclass.h>
//#include <graphics/displayinfo.h>
#include <Struct.h>
//-------------------------------------
struct tkPrefs prg_preferences,*prg_prefs=&prg_preferences;
struct tkPrefs cpy_preferences,*cpy_prefs=&cpy_preferences;
struct Window *window_prefs=0;
enum id
{
ID_NONE,
ID_COLORS,
ID_COLUMNS,
ID_EQUAL,
ID_ORDER,
ID_DISPLAY,
ID_NOVICE,
ID_AMATURE,
ID_EXPERT,
ID_END
};
//-------------------------------------
void prefs_init()
{
struct Screen *scr=LockPubScreen(PUB_WB);
prg_prefs->game.num_columns=4;
prg_prefs->game.num_colors= 6;
prg_prefs->game.max_equal= 1; // > 0
prg_prefs->game.val_order= ORDER_DESC;
prg_prefs->game.display= DISPLAY_COLORS;
if (scr)
{
prg_prefs->scr.scr_mode=GetVPModeID(&scr->ViewPort);
prg_prefs->scr.scr_width=scr->Width;
prg_prefs->scr.scr_height=scr->Height;
UnlockPubScreen(0,scr);
}
else
{
prg_prefs->scr.scr_mode=LIKE_WORKBENCH;
prg_prefs->scr.scr_width=640;
prg_prefs->scr.scr_height=512;
}
prg_prefs->scr.scr_depth=3;
prg_prefs->scr.scr_overscan=OSCAN_TEXT;
prg_prefs->scr.scr_public=TRUE;
strcpy(prg_prefs->game.player_name,"Nobody");
strcpy(prg_prefs->game.save_file,"Save/SuperSave.001");
strcpy(prg_prefs->scr.scr_pubname,PUB_WB);
// strcpy(prg_prefs->scr.fontname,"CGTimes.font");
// prg_prefs->scr.fontattr.ta_YSize=30;
strcpy(prg_prefs->scr.fontname,scr->Font->ta_Name);
prg_prefs->scr.fontattr.ta_YSize=scr->Font->ta_YSize;
prg_prefs->scr.fontattr.ta_Name=prg_prefs->scr.fontname;
prg_prefs->win.game.Xpos=20;
prg_prefs->win.game.Ypos=20;
prg_prefs->win.game.WinW=250;
prg_prefs->win.game.WinH=300;
prg_prefs->win.score.Xpos=270;
prg_prefs->win.score.Ypos=20;
prg_prefs->win.score.WinW=250;
prg_prefs->win.score.WinH=300;
prg_prefs->win.prefs.Xpos=10;
prg_prefs->win.prefs.Ypos=40;
prg_prefs->win.prefs.WinW=270;
prg_prefs->win.prefs.WinH=200;
prg_prefs->win.font.Xpos=20;
prg_prefs->win.font.Ypos=20;
prg_prefs->win.font.WinW=250;
prg_prefs->win.font.WinH=200;
prg_prefs->win.file.Xpos=20;
prg_prefs->win.file.Ypos=20;
prg_prefs->win.file.WinW=250;
prg_prefs->win.file.WinH=200;
prg_prefs->win.scrn.Xpos=20;
prg_prefs->win.scrn.Ypos=20;
prg_prefs->win.scrn.WinW=200;
prg_prefs->win.scrn.WinH=200;
prefs_load();
};
//-------------------------------------
void prefs_free()
{
prefs_windowclose();
// prefs_save();
};
//-------------------------------------
//-------------------------------------
LONG prefs_askscreen()
{
struct ScreenModeRequester *request;
LONG back=FALSE;
request=AllocAslRequest(ASL_ScreenModeRequest,0);
if (request)
{
LONG mode= prg_prefs->scr.scr_mode;
back=AslRequestTags(request,
ASLSM_InitialLeftEdge,prg_prefs->win.scrn.Xpos,
ASLSM_InitialTopEdge,prg_prefs->win.scrn.Ypos,
ASLSM_InitialHeight,prg_prefs->win.scrn.WinW,
ASLSM_InitialWidth,prg_prefs->win.scrn.WinH,
ASLSM_Window,0,
ASLSM_SleepWindow,0,
ASLSM_Locale,0,
// ASLSM_NegativeText,(STRPTR),
// ASLSM_PositiveText,(STRPTR),
// ASLSM_TextAttr,(struct TextAttr *),
ASLSM_TitleText,CatStr(TXT_PREFSCREENMODE),
ASLSM_InitialDisplayID,mode,
// ASLSM_InitialAutoScroll,TRUE,
ASLSM_InitialDisplayDepth,Scrn.Depth,
ASLSM_InitialDisplayWidth,Scrn.Width,
ASLSM_InitialDisplayHeight,Scrn.Height,
ASLSM_InitialOverscanType,Scrn.OverScan,
// ASLSM_InitialInfoLeftEdge (WORD)
// ASLSM_InitialInfoTopEdge (WORD) [V38]
// ASLSM_InitialInfoOpened,TRUE,
// ASLSM_UserData (APTR) [V38]
// ASLSM_DoAutoScroll,TRUE,
ASLSM_DoDepth,TRUE,
ASLSM_DoHeight,TRUE,
ASLSM_DoWidth,TRUE,
ASLSM_DoOverscanType,TRUE,
// ASLSM_FilterFunc (struct Hook *) [V38]
// ASLSM_MaxDepth (UWORD),
// ASLSM_MinDepth (UWORD) [V38]
// ASLSM_MaxHeight (ULONG),
// ASLSM_MinHeight (ULONG) [V38]
// ASLSM_MaxWidth (ULONG),
// ASLSM_MinWidth (ULONG) [V38]
// ASLSM_PropertyFlags (ULONG),
// ASLSM_PropertyMask (ULONG) [V38]
TAG_END);
prg_prefs->win.scrn.Xpos=request->sm_LeftEdge;
prg_prefs->win.scrn.Ypos=request->sm_TopEdge;
prg_prefs->win.scrn.WinW=request->sm_Width;
prg_prefs->win.scrn.WinH=request->sm_Height;
if (back)
{
prg_prefs->scr.scr_width=request->sm_DisplayWidth;
prg_prefs->scr.scr_height=request->sm_DisplayHeight;
prg_prefs->scr.scr_depth=request->sm_DisplayDepth;
prg_prefs->scr.scr_mode=request->sm_DisplayID;
prg_prefs->scr.scr_overscan=request->sm_OverscanType;
prg_prefs->scr.scr_public=FALSE;
}
FreeAslRequest(request);
}
return back;
}
//-------------------------------------
void prefs_setscreen()
{
if (prefs_askscreen())
{
// prefs_settext();
Screen_Open(&Scrn);
}
}
//-------------------------------------
//-------------------------------------
LONG prefs_askfont(struct TextAttr *attr)
{
struct FontRequester *request;
LONG back=FALSE;
request=AllocAslRequest(ASL_FontRequest,0);
if (request)
{
back=AslRequestTags(request,
// ASLFO_Window,Win_Calc->WinPtr,
ASLFO_TitleText,CatStr(TXT_PREFSELECTFONT),
ASLFO_InitialDrawMode,JAM1,
ASLFO_InitialFlags,0,
ASLFO_InitialName,attr->ta_Name,
ASLFO_InitialSize,attr->ta_YSize,
ASLFO_InitialStyle,FS_NORMAL,
ASLFO_InitialLeftEdge,prg_prefs->win.font.Xpos,
ASLFO_InitialTopEdge,prg_prefs->win.font.Ypos,
ASLFO_InitialWidth,prg_prefs->win.font.WinW,
ASLFO_InitialHeight,prg_prefs->win.font.WinH,
TAG_END);
prg_prefs->win.font.Xpos=request->fo_LeftEdge;
prg_prefs->win.font.Ypos=request->fo_TopEdge;
prg_prefs->win.font.WinW=request->fo_Width;
prg_prefs->win.font.WinH=request->fo_Height;
if (back)
{
StrCopy(attr->ta_Name,request->fo_Attr.ta_Name,MAX_FONTNAME);
attr->ta_YSize=request->fo_Attr.ta_YSize;
}
FreeAslRequest(request);
}
return back;
}
//-------------------------------------
void prefs_setfont()
{
if (prefs_askfont(&prg_prefs->scr.fontattr))
{
// prefs_settext();
Screen_Open(&Scrn);
}
}
//-------------------------------------
//-------------------------------------
LONG prefs_askfile(UBYTE *title,UBYTE *filename,LONG size,LONG save)
{
struct FileRequester *request;
LONG back=FALSE;
UBYTE drawer[FILENAME_MAX+2];
strncpy(drawer,filename,MIN(size,FILENAME_MAX));
if (PathPart(drawer)) PathPart(drawer)[0]=0;
request=AllocAslRequest(ASL_FileRequest,0);
if (request)
{
back=AslRequestTags(request,
ASLFR_InitialLeftEdge,prg_prefs->win.file.Xpos,
ASLFR_InitialTopEdge,prg_prefs->win.file.Ypos,
ASLFR_InitialWidth,prg_prefs->win.file.WinW,
ASLFR_InitialHeight,prg_prefs->win.file.WinH,
ASLFR_Screen,Scrn.Scrn,
ASLFR_Locale,locale,
ASLFR_TitleText,title,
ASLFR_InitialFile,FilePart(filename),
ASLFR_InitialDrawer,drawer,
ASLFR_DoSaveMode,save,
TAG_END);
prg_prefs->win.file.Xpos=request->fr_LeftEdge;
prg_prefs->win.file.Ypos=request->fr_TopEdge;
prg_prefs->win.file.WinW=request->fr_Width;
prg_prefs->win.file.WinH=request->fr_Height;
if (back)
{
StrCopy(filename,request->fr_Drawer,size);
AddPart(filename,request->fr_File,size);
}
FreeAslRequest(request);
}
return back;
}
//-------------------------------------
struct Gadget *gadget_first=0,
*gadget_colors,
*gadget_equal,
*gadget_order,
*gadget_display,
*gadget_columns,
*gadget_novice,
*gadget_amature,
*gadget_expert;
UBYTE *text_order[4];
UBYTE *text_display[3];
//-------------------------------------
void gadget_newlook(struct Gadget *gad)
{
while (gad)
{
if ( (gad->GadgetType & GTYP_PROPGADGET) && (gad->SpecialInfo) )
((struct PropInfo*)gad->SpecialInfo)->Flags|=PROPNEWLOOK;
gad=gad->NextGadget;
}
}
//-------------------------------------
//-------------------------------------
void prefs_copy(struct tkPrefs *src,struct tkPrefs *dst)
{
if (dst && src)
{
memcpy(&dst->scr,&src->scr,sizeof(struct SetScreen));
memcpy(&dst->game,&src->game,sizeof(struct SetGame));
// memcpy(&dst->win,&src->win,sizeof(struct SetWindow));
}
}
//-------------------------------------
//-------------------------------------
void prefs_freegadgets()
{
if (gadget_first)
{
if (window_prefs) RemoveGList(window_prefs,gadget_first,-1);
FreeGadgets(gadget_first);
if (gadget_novice) DisposeObject(gadget_novice);
if (gadget_amature) DisposeObject(gadget_amature);
if (gadget_expert) DisposeObject(gadget_expert);
gadget_first=0;
}
}
//-------------------------------------
void prefs_newsize(BOOL clr)
{
struct TextFont *font=Scrn.tkfont.font;
struct RastPort *rp;
struct NewGadget new=
{
0, //ng_LeftEdge;
0, //ng_TopEdge;
0, //ng_Width;
0, //ng_Height;
0, // ng_GadgetText;
0, // ng_TextAttr;
0, // ng_GadgetID;
0, // ng_Flags;
Scrn.Visual, // ng_VisualInfo;
0 // ng_UserData;
};
text_order[0]=CatStr(TXT_PREFPOSITION);
text_order[1]=CatStr(TXT_PREFDESC);
text_order[2]=CatStr(TXT_PREFRANDOM);
text_order[3]=0;
text_display[0]=CatStr(TXT_PREFCOLORS);
text_display[1]=CatStr(TXT_PREFLETTERS);
text_display[2]=0;
if (window_prefs)
{
rp=window_prefs->RPort;
prefs_freegadgets();
CreateContext(&gadget_first);
{
ULONG x=window_prefs->BorderLeft;
ULONG y=window_prefs->BorderTop;
ULONG w=window_prefs->Width-window_prefs->BorderLeft-window_prefs->BorderRight;
ULONG h=window_prefs->Height-window_prefs->BorderTop-window_prefs->BorderBottom;
ULONG s,xc,yc,wc,hc;
if (clr)
{
EraseRect(rp,x,y,x+w-1,y+h-1);
RefreshWindowFrame(window_prefs);
}
x+=6;
y+=6;
w-=12;
h-=12;
s=font->tf_YSize+6;
xc=x;
yc=y+s;
wc=(w-6)/2;
hc=14;
new.ng_TextAttr= &Scrn.tkfont.attr;
new.ng_LeftEdge= xc;
new.ng_TopEdge= yc;
new.ng_Width= wc;
new.ng_Height= hc;
new.ng_GadgetID= ID_COLUMNS;
gadget_columns = CreateGadget(SLIDER_KIND,gadget_first,&new,
GA_Immediate,TRUE,
GA_RelVerify,TRUE,
GTSL_Level,cpy_prefs->game.num_columns,
GTSL_Max,20,
GTSL_Min,2,
PGA_Freedom,LORIENT_HORIZ,
GTSL_LevelFormat,CatStr(TXT_PREFCOLUMNS),
GTSL_LevelPlace,PLACETEXT_ABOVE,
GTSL_MaxLevelLen,12,
// GTSL_MaxPixelLen,wc,
TAG_END);
new.ng_LeftEdge= xc+wc+6;
new.ng_TopEdge= yc;
new.ng_Width= wc;
new.ng_Height= hc;
new.ng_GadgetID= ID_COLORS;
gadget_colors = CreateGadget(SLIDER_KIND,gadget_columns,&new,
GA_Immediate,TRUE,
GA_RelVerify,TRUE,
GTSL_Level,cpy_prefs->game.num_colors,
GTSL_Max,26,
GTSL_Min,2,
PGA_Freedom,LORIENT_HORIZ,
GTSL_LevelFormat,CatStr(TXT_PREFSETCOLOR),
GTSL_LevelPlace,PLACETEXT_ABOVE,
GTSL_MaxLevelLen,12,
// GTSL_MaxPixelLen,wc,
TAG_END);
yc+=hc+s+6;
new.ng_LeftEdge= xc+wc/2+3;
new.ng_TopEdge= yc;
new.ng_Width= wc;
new.ng_Height= hc;
new.ng_GadgetID= ID_EQUAL;
gadget_equal = CreateGadget(SLIDER_KIND,gadget_colors,&new,
GA_Immediate,TRUE,
GA_RelVerify,TRUE,
GTSL_Level,cpy_prefs->game.max_equal,
GTSL_Max,20,
GTSL_Min,1,
PGA_Freedom,LORIENT_HORIZ,
GTSL_LevelFormat,CatStr(TXT_PREFSETEQUAL),
GTSL_LevelPlace,PLACETEXT_ABOVE,
GTSL_MaxLevelLen,12,
// GTSL_MaxPixelLen,wc,
TAG_END);
yc+=hc+s+6;
new.ng_LeftEdge= x;
new.ng_TopEdge= yc;
new.ng_Width= w;
new.ng_Height= s;
new.ng_GadgetID= ID_ORDER;
new.ng_GadgetText= CatStr(TXT_PREFANSWER);
new.ng_Flags= PLACETEXT_ABOVE;
gadget_order = CreateGadget(CYCLE_KIND,gadget_equal,&new,
GA_Immediate,TRUE,
GA_RelVerify,TRUE,
GTCY_Active,cpy_prefs->game.val_order,
GTCY_Labels,text_order,
TAG_END);
yc+=s+s+6;
new.ng_LeftEdge= x;
new.ng_TopEdge= yc;
new.ng_Width= w;
new.ng_Height= s;
new.ng_GadgetID= ID_DISPLAY;
new.ng_GadgetText= CatStr(TXT_DISPLAYMODE);
new.ng_Flags= PLACETEXT_ABOVE;
gadget_display = CreateGadget(CYCLE_KIND,gadget_order,&new,
GA_Immediate,TRUE,
GA_RelVerify,TRUE,
GTCY_Active,prg_prefs->game.display,
GTCY_Labels,text_display,
TAG_END);
wc=(w-12)/3;
yc+=s+12;
gadget_novice = NewObject (class_button,0,
GA_Previous,gadget_display,
GA_Left,x,
GA_Top,yc,
GA_Width,wc,
GA_Height,s,
GA_RelVerify,TRUE,
GA_Text,CatStr(TXT_PREFBEGINNER),
GA_ID,ID_NOVICE,
GA_Font,font,
TAG_END);
gadget_amature = NewObject (class_button,0,
GA_Previous,gadget_order,
GA_Left,x+wc+6,
GA_Top,yc,
GA_Width,wc,
GA_Height,s,
GA_RelVerify,TRUE,
GA_Text,CatStr(TXT_PREFAMATURE),
GA_ID,ID_AMATURE,
GA_Font,font,
TAG_END);
gadget_expert = NewObject (class_button,0,
GA_Previous,gadget_order,
GA_Left,x+2*wc+12,
GA_Top,yc,
GA_Width,wc,
GA_Height,s,
GA_RelVerify,TRUE,
GA_Text,CatStr(TXT_PREFEXPERT),
GA_ID,ID_EXPERT,
GA_Font,font,
TAG_END);
gadget_newlook(gadget_first);
}
AddGList(window_prefs,gadget_first,-1,-1,0);
RefreshGList(gadget_first,window_prefs,0,-1);
GT_RefreshWindow(window_prefs,0);
}
}
//-------------------------------------
void prefs_windowopen()
{
if (!window_prefs)
{
prefs_copy(prg_prefs,cpy_prefs);
window_prefs=OpenWindowTags(0,
WA_Title,CatStr(TXT_SCOREWINTITLE),
WA_Left,prg_prefs->win.prefs.Xpos,
WA_Top,prg_prefs->win.prefs.Ypos,
WA_Width,prg_prefs->win.prefs.WinW,
WA_Height,prg_prefs->win.prefs.WinH,
(Scrn.Scrn && Scrn.FlgPublic==FALSE) ? WA_CustomScreen : WA_PubScreen,Scrn.Scrn,
WA_Flags,
WFLG_ACTIVATE|
WFLG_CLOSEGADGET|
WFLG_DRAGBAR|
WFLG_DEPTHGADGET|
WFLG_NEWLOOKMENUS|
WFLG_RMBTRAP|
// WFLG_SIZEBBOTTOM|
WFLG_SIZEBRIGHT|
WFLG_SIZEGADGET|
0,
WA_IDCMP,
IDCMP_GADGETUP|
IDCMP_CLOSEWINDOW|
IDCMP_NEWSIZE|
SLIDERIDCMP|
0,
// WA_Zoom,0,
WA_AutoAdjust,TRUE,
WA_MaxWidth,-1,
WA_MaxHeight,-1,
WA_MinWidth,50,
WA_MinHeight,50,
TAG_END);
}
prefs_newsize(FALSE);
}
//-------------------------------------
void prefs_windowclose()
{
if (window_prefs)
{
prefs_freegadgets();
window_close(window_prefs,&prg_prefs->win.prefs);
window_prefs=0;
prefs_copy(cpy_prefs,prg_prefs);
}
}
//-------------------------------------
void prefs_setwindow()
{
GT_SetGadgetAttrs(gadget_columns,window_prefs,0,
GTSL_Level,cpy_prefs->game.num_columns,
TAG_END);
GT_SetGadgetAttrs(gadget_colors,window_prefs,0,
GTSL_Level,cpy_prefs->game.num_colors,
TAG_END);
GT_SetGadgetAttrs(gadget_equal,window_prefs,0,
GTSL_Level,cpy_prefs->game.max_equal,
TAG_END);
GT_SetGadgetAttrs(gadget_order,window_prefs,0,
GTCY_Active,cpy_prefs->game.val_order,
TAG_END);
}
//-------------------------------------
//-------------------------------------
void prefs_dogadget(ULONG id,ULONG code,ULONG qual)
{
ULONG
colors=cpy_prefs->game.num_colors,
columns=cpy_prefs->game.num_columns,
equal=cpy_prefs->game.max_equal,
order=cpy_prefs->game.val_order,
display=cpy_prefs->game.display;
switch (id)
{
case ID_COLORS:
colors=code;
break;
case ID_COLUMNS:
columns=code;
break;
case ID_EQUAL:
equal=code;
break;
case ID_ORDER:
order=code;
break;
case ID_DISPLAY:
display=code;
break;
case ID_NOVICE:
colors=6;
columns=4;
equal=1;
order=ORDER_POS;
break;
case ID_AMATURE:
colors=7;
columns=5;
equal=2;
order=ORDER_DESC;
break;
case ID_EXPERT:
colors=12;
columns=8;
equal=3;
order=ORDER_RANDOM;
break;
}
cpy_prefs->game.num_colors=colors;
cpy_prefs->game.num_columns=columns;
cpy_prefs->game.max_equal=equal;
cpy_prefs->game.val_order=order;
cpy_prefs->game.display=display;
prefs_setwindow();
}
//-------------------------------------
LONG prefs_getbit()
{
LONG bit=0;
if (window_prefs)
{
bit=1 << window_prefs->UserPort->mp_SigBit;
}
return bit;
}
//-------------------------------------
VOID prefs_domsg()
{
struct Window *win=window_prefs;
struct IntuiMessage *msg;
struct Gadget *gadg;
LONG clas;
LONG code;
LONG qual;
LONG posx,posy,seco,micr;
while (window_prefs && (msg=GT_GetIMsg(win->UserPort)))
{
gadg = (APTR)msg->IAddress;
clas = msg->Class;
code = msg->Code;
qual = msg->Qualifier;
posx = msg->MouseX;
posy = msg->MouseY;
seco = msg->Seconds;
micr = msg->Micros;
GT_ReplyIMsg(msg);
switch (clas)
{
case IDCMP_CHANGEWINDOW:
// Window_StoreSize(MsgBlk);
break;
case IDCMP_RAWKEY:
break;
case IDCMP_NEWSIZE:
prefs_newsize(TRUE);
break;
case IDCMP_MENUPICK:
// Command_Menu(,GadMsg.Code);
break;
case IDCMP_CLOSEWINDOW:
prefs_windowclose();
break;
case IDCMP_GADGETUP:
prefs_dogadget(gadg->GadgetID,code,qual);
break;
}
}
}
//-------------------------------------
char prefs_file[]="PROGDIR:SuperCode.prefs";
//-------------------------------------
void prefs_save()
{
struct tkfile *file;
file = file_open(prefs_file,MODE_NEWFILE,FALSE);
file_writelong(file,PREFSHEAD);
file_saveblock(file,INDGAME,VERGAME,sizeof(struct SetGame),&prg_prefs->game);
file_saveblock(file,INDSCREEN,VERSCREEN,sizeof(struct SetScreen),&prg_prefs->scr);
file_saveblock(file,INDWINDOW,VERWINDOW,sizeof(struct SetWindow),&prg_prefs->win);
file_free(&file);
}
//-------------------------------------
void prefs_load()
{
struct tkfile *file;
file = file_open(prefs_file,0,ASKFILE_CANTOPEN);
if (file_readlong(file)==PREFSHEAD)
{
BOOL load=TRUE;
ULONG ind=0;
while (load)
{
ind=file_readlong(file);
switch(ind)
{
case INDGAME:
file_loadblock(file,VERGAME,sizeof(struct SetGame),&prg_prefs->game);
break;
case INDSCREEN:
file_loadblock(file,VERSCREEN,sizeof(struct SetScreen),&prg_prefs->scr);
break;
case INDWINDOW:
file_loadblock(file,VERWINDOW,sizeof(struct SetWindow),&prg_prefs->win);
break;
default:
load=FALSE;
break;
}
}
}
file_free(&file);
}
//-------------------------------------
//-------------------------------------
/*
//-------------------------------------
LONG prefs_askpubscreen(UBYTE *name,LONG max)
{
struct PubScreenRequest *pub=0;
LONG back=FALSE;
pub=AllocPubScreenRequest();
if (pub)
{
back=PubScreenRequest(pub);
if (back)
{
prg_prefs->scr_public=TRUE;
StrCopy(name,pub->PubName,max);
}
FreePubScreenRequest(pub);
}
return back;
}
//-------------------------------------
void prefs_setpubscreen()
{
if (prefs_askpubscreen(prg_prefs->scr_pubname,MAX_PUBSCREENNAME))
{
prefs_settext();
Screen_Open(&Scrn);
}
}
//-------------------------------------
*/